// --- Copyright (c) 2006-2008 Stefan Kyntchev ---
// This software is written and copyrighted by Stefan Kyntchev 
// and BeyondPod Team members. All rights are reserved.
// Author contact: support@beyondpod.mobi
// ------------------------------------------------------------------------
// This file is part of BeyondPod RSS Feed Reader and Podcast manager
// (www.codeplex.com/BeyondPod) 
// BeyondPod is free software: you can redistribute it and/or modify 
// it under the terms of the GNU General Public License as published by 
// the Free Software Foundation, either version 3 of the License, or 
// (at your option) any later version. 
//  
// BeyondPod is distributed in the hope that it will be useful, 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
// GNU General Public License for more details. 
//  
// You should have received a copy of the GNU General Public License
// along with BeyondPod. If not, see <http://www.gnu.org/licenses/>
// ------------------------------------------------------------------------
// COPYRIGHT NOTICE: This copyright notice may NOT be removed, obscured or modified 
// without written consent from the author.
// --- End copyright notice --- 


using System;
using System.Collections.Generic;

namespace svs.Mobile.BeyondMedia.FeedCore.Helpers
{
	public class FeedList : List<Feed>
	{
		public int UnplayedTrackCount
		{
			get
			{
				int numUnplayed = 0;
				foreach (Feed f in this)
				{
					numUnplayed += f.UnplayedTrackCount;
				}
				return numUnplayed;
			}
		}
	}

	public class TrackList : List<Track>
	{

		/// <summary>
		/// Gets the unplayed track count.
		/// </summary>
		/// <value>The unplayed track count.</value>
		public int UnplayedTrackCount
		{
			get
			{
				int retVal = 0;
				foreach(Track t in this )
				{
					if(t.IsNew)
					{
						retVal++;
					}
				}
				return retVal;
			}
		}

		public Track GetFirstUnplayedOrPartiallyPlayedTrack()
		{
			if (Count > 0)
			{
				foreach (Track track in this)
				{
					if (track.IsNew || track.IsPartialyPlayed)
					{
						return track;
					}
				}
			}
			return null;
		}
	}

	public class TrackDictionary : Dictionary<string,Track>
	{
	}

	public class FeedDictionary : Dictionary<Guid, Feed>
	{
	}

	public class CategoryList : List<FeedCategory>
	{
	}
}